﻿using System;
using System.Globalization;
using System.Linq;
using System.Web.UI;
using PortalCurriculo.Domain;
using PortalCurriculo.WebUI.Helpers;

namespace PortalCurriculo.WebUI.UserControls
{
    public partial class CadastroPessoa : UserControl
    {
        #region TipoPessoa enum

        public enum TipoPessoa
        {
            PessoaFisica,
            PessoaJuridica
        }

        #endregion

        public TipoPessoa Pessoa { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Pessoa == TipoPessoa.PessoaFisica)
            {
                pnlPessoaFisica.Visible = true;

                PreencherDropDownListPessoaFisica();
            }
            else
                pnlPessoaJuridica.Visible = true;

            CultureInfo cultura = CultureHelper.Cultura;

            mskDataNascimento.Culture = cultura;
            mskCPF.Culture = cultura;
            mskCNPJ.Culture = cultura;
        }

        private void PreencherDropDownListPessoaFisica()
        {
            ddlEstadoCivil.DataTextField = "Descricao";
            ddlEstadoCivil.DataValueField = "Id";
            ddlEstadoCivil.DataSource = new EstadoCivil().SelectAllActive<EstadoCivil>();
            ddlEstadoCivil.DataBind();

            ddlNacionalidade.DataTextField = "Nacionalidade";
            ddlNacionalidade.DataValueField = "Id";
            ddlNacionalidade.DataSource = new Pai().SelectAllActive<Pai>().Where(pai => pai.Nacionalidade != null);
            ddlNacionalidade.DataBind();
        }

        public Pessoa CriarEntidade(string email)
        {
            PessoaFisica pessoaFisica = null;
            PessoaJuridica pessoaJuridica = null;

            if (!string.IsNullOrEmpty(txtCPF.Text))
            {
                pessoaFisica = new PessoaFisica
                                   {
                                       CPF = txtCPF.Text.Replace(".", string.Empty).Replace("-", string.Empty),
                                       DataNascimento = DateTime.Parse(txtDataNascimento.Text),
                                       IdEstadoCivil = int.Parse(ddlEstadoCivil.SelectedValue),
                                       NomeCompleto = txtNome.Text,
                                       RG =
                                           txtRG.Text.Replace(".", string.Empty).Replace("-", string.Empty).Replace(
                                               ",", string.Empty),
                                       Sexo = ddlSexo.SelectedValue,
                                       IdNacionalidade = int.Parse(ddlNacionalidade.SelectedValue)
                                   };
            }
            else
            {
                pessoaJuridica = new PessoaJuridica
                                     {
                                         CNPJ = txtCNPJ.Text,
                                         IE = txtIE.Text,
                                         Logo = fileLogo.FileName,
                                         NomeFantasia = txtNomeFantasia.Text,
                                         RazaoSocial = txtRazaoSocial.Text
                                     };
            }

            var pessoa = new Pessoa
                             {
                                 Ativo = true,
                                 DataCadastro = DateTime.Now,
                                 Email = email,
                                 PessoaFisica = pessoaFisica,
                                 PessoaJuridica = pessoaJuridica,
                                 ReceberEmailParceiro = chkReceberEmailParceiro.Checked,
                                 ReceberEmailSite = chkReceberEmailSite.Checked,
                                 ReceberSMS = chkReceberSMS.Checked,
                                 Site = txtSite.Text
                             };

            return pessoa;
        }
    }
}